bitkeeper revision 1.46.1.1 (3e4ea2f52nebi38hIZkpYvqaZogL3g)
authoriap10@labyrinth.cl.cam.ac.uk <iap10@labyrinth.cl.cam.ac.uk>
Sat, 15 Feb 2003 20:28:37 +0000 (20:28 +0000)
committeriap10@labyrinth.cl.cam.ac.uk <iap10@labyrinth.cl.cam.ac.uk>
Sat, 15 Feb 2003 20:28:37 +0000 (20:28 +0000)
Allow root to be other than nfs - remove the nfsroot component of the
xen command line, and add "ro root=/dev/xhdaN" to the *module* command
line. E.g.
kernel (nd)/usr/groups/srgboot/moonraider/image.gz ipbase=128.232.35.190 gateway=128.232.32.1 netmask=255.255.240.0 dom0_mem=262144
module (nd)/usr/groups/srgboot/moonraider/xenolinux.gz ro root=/dev/xhda7

xen-2.4.16/common/domain.c

index cb24e0cdce378d394c04c40ef1dccd94971b83e6..2f6f1890a0416a6a69fc98f3031fbb96e4ecc55d 100644 (file)
@@ -578,19 +578,16 @@ int setup_guestos(struct task_struct *p, dom0_newdomain_t *params)
         }
     }
     *dst = '\0';
+//printk("opt_nfsroot=%d,%s XX cmd =: %s\n",opt_nfsroot,opt_nfsroot,virt_startinfo_address->cmd_line);
 
-    if ( opt_nfsroot )
-    {
+    if ( strcmp("",opt_nfsroot) )
+    {   // if nfsroot has been set to something
         unsigned char boot[150];
         unsigned char ipbase[20], nfsserv[20], gateway[20], netmask[20];
         unsigned char nfsroot[70];
         snprintf(nfsroot, 70, opt_nfsroot, dom); 
         snprintf(boot, 200,
-#if 1
                 " root=/dev/nfs ip=%s:%s:%s:%s::eth0:off nfsroot=%s",
-#else
-                " ro root=/dev/xhda7 ip=%s:%s:%s:%s::eth0:off arfle=%s",
-#endif
                  quad_to_str(opt_ipbase + dom, ipbase),
                  quad_to_str(opt_nfsserv, nfsserv),
                  quad_to_str(opt_gateway, gateway),
@@ -598,6 +595,18 @@ int setup_guestos(struct task_struct *p, dom0_newdomain_t *params)
                  nfsroot);
         strcpy(dst, boot);
     }
+    else
+    {   
+        unsigned char boot[150];
+        unsigned char ipbase[20], nfsserv[20], gateway[20], netmask[20];
+        snprintf(boot, 200,
+                " ip=%s::%s:%s::eth0:off",
+                 quad_to_str(opt_ipbase + dom, ipbase),
+                 quad_to_str(opt_gateway, gateway),
+                 quad_to_str(opt_netmask, netmask));
+        strcpy(dst, boot);
+    }
+
 
     /* Reinstate the caller's page tables. */
     __write_cr3_counted(pagetable_val(current->mm.pagetable));